using System;
using System.Text;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Profile;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ClickSocial.Framework;
using ClickSocial.Components;
using ClickSocial.Entities;

namespace ClickSocial.Admin
{
    public partial class VentaDetalle : CDefault
    {

        public long VentaID
        {
            get { return Convert.ToInt64(Request["VentaID"] ?? "0"); }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
                BindData();
        }

        private void BindData()
        {
            try
            {
                if (VentaID != 0)
                {
                    VentaInfo oVentaInfo = Components.Ventas.GetOne(VentaID);

                    lblFecha.Text = oVentaInfo.Fecha.ToString();
                    lblVentaID.Text = oVentaInfo.VentaID.ToString();
                    lblCliente.Text = GetInfoCliente(oVentaInfo.Cliente);
                    ListItem item_estado = ddlEstados.Items.FindByValue(oVentaInfo.Estado);
                    if (item_estado != null)
                    {
                        ddlEstados.SelectedIndex = ddlEstados.Items.IndexOf(item_estado);
                        lblEstado.Text = item_estado.Text;
                    }

                    PagedDataSource Paginacion = new PagedDataSource();
                    Paginador paginador = new Paginador(Request["page"], Request.Path, Request.QueryString);
                    if (User.IsInRole(Global.RolesApp.Host))
                        paginador.PageDS.DataSource = VentaItem.GetAllByVentaID(VentaID);
                    else
                        paginador.PageDS.DataSource = VentaItem.GetAllByVentaIDFotografo(VentaID, User.Identity.Name);
                    paginador.PageDS.AllowPaging = true;
                    paginador.PageDS.PageSize = 10;
                    litPaginador.Text = paginador.Render();

                    if (paginador.PageDS.Count == 0)
                    {
                        lblMensaje.Visible = true;
                        lblMensaje.Text = "No tiene descargas disponibles";
                    }
                    pnlContenedor.Visible = !paginador.PageDS.Count.Equals(0);
                    RepeaterItemVenta.Visible = !paginador.PageDS.Count.Equals(0);
                    RepeaterItemVenta.DataSource = paginador.PageDS;
                    RepeaterItemVenta.DataBind();

                }
                else
                {
                    pnlContenedor.Visible = false;
                }
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.Message;
            }
        }

        private string GetInfoCliente(string cliente)
        {
            MembershipUser usuario = Membership.GetUser(cliente);
            PerfilComun perfil = (PerfilComun)ProfileBase.Create(cliente);
            StringBuilder sbCliente = new StringBuilder();

            sbCliente.AppendFormat("Usuario:{0} E-mail:{1}<br />", cliente, usuario.Email);
            sbCliente.AppendFormat("Nombre:{0} Apellido:{1}<br />", perfil.Nombre, perfil.Apellido);
            sbCliente.AppendFormat("Tel:{0}", perfil.Telefono);

            return sbCliente.ToString();
        }

        protected void ddlEstados_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (VentaID != 0)
            {
                try
                {
                    Components.Ventas.UpdateEstado(VentaID, ddlEstados.SelectedValue);
                    lblEstado.Text = ddlEstados.SelectedItem.Text;
                }
                catch (Exception ex)
                {
                    lblMensaje.Text = ex.Message;
                }
            }
        }

    }
}
